<?php

/**
 *  * 海之心任务悬赏系统-受国家计算机软件著作权保护（登记号：2021SR0164984） - !
 * =========================================================
 * Copy right 2018-2025 成都海之心科技有限公司, 保留所有权利。
 * ----------------------------------------------
 * 官方网址: http://www.ohyu.cn
 * 这不是一个自由软件！在未得到官方有效许可的前提下禁止对程序代码进行修改和使用。
 * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
 * =========================================================
 * Date: 2021/3/15
 * Time: 17:59
 */

namespace app\handler;

use app\api\models\EscortUserToken;
use app\api\models\EscortUserList;

class AuthHandler
{
    public static function user($token,$islog)
    {   
        $nowtime=time();//现在的时间
        if(!$token) return false;
        //读取缓存的该token
        $data = cache($token);
        if(!$data){
            //如果没有缓存，就从数据库中查询
            //$data = EscortUserToken::where('token', $token)->cache(60)->find();
            $data = EscortUserToken::findData(['where'=>['token'=>$token],'cache'=>10]);
            if (!$data) {
                return false;
            } elseif ($nowtime>strtotime("+7day",strtotime($data->update_time))) {
                return false;
            } elseif (!$data->user || !$data->user->status || $data->user->status==2) {
                return false;
            }
            //添加更新时间
            $user=$data->user;
            $user->update_time=date('Y-m-d H:i:s');
            //将用户信息存入缓存
            cache($token, $user, 86400*7);
            return $user;
        }else{
            if (!$data) {
                //清理缓存
                cache($token, null);
                return false;
            } elseif ($nowtime>strtotime("+7day",strtotime($data['update_time']))) {
                //清理缓存
                cache($token, null);
                return false;
            }
            if($islog){ //需要更新用户信息 则查询后返回
                //做的修改 上面缓存了用户信息 下面直接返回 记得余额不能缓存
                $uid=$data['id'];
                //$data = EscortUserList::where('id', $uid)->cache(60)->find();
                $data = EscortUserList::findData(['where'=>['id'=>$uid],'cache'=>600]);
                $data->update_time=date('Y-m-d H:i:s');
                //查到了用户信息 需要更新缓存
                cache($token, $data, 86400*7);
                if (!$data || !$data->status || $data->status==2) {
                    return false;
                }
            }
            return $data;
        }
    }
}